1. Technical Field
The present disclosure relates generally to information processing systems and, more specifically, to managing layout of program elements in managed runtime environments.
2. Background Art
Modem platform-independent high-level programming languages such as Java and C# have gained significant market presence, especially for network-based applications. Typically, programs written in these languages execute in a managed runtime environment (MRE) that provides automatic memory management, type management, threads and synchronization, and dynamic loading facilities.
MREs typically support just-in-time compilation. Programs written in high-level programming languages such as Java and C# typically are first compiled to codes in a platform-neutral distribution format called bytecode. For example, a Java MRE may support Java class files that contain Java virtual machine language bytecode instructions. The compiled bytecode typically is not directly run on a platform.
While an MRE may directly interpret bytecodes, this is not typically done unless memory is exceedingly limited. MRE interpretation of bytecodes may significantly reduce performance. Instead, an MRE typically includes one or more just-in-time (“JIT”) compilers that translates on demand, an application's bytecode instructions into native instructions for the processor on which the MRE is executing. The native instructions produced by a JIT for each compiled method are placed in a compiled code region.